# Q. What is this file?
# A. This file contains options which allow you to configure your multiworld experience while allowing
#    others to play how they want as well.
#
# Q. How do I use it?
# A. The options in this file are weighted. This means the higher number you assign to a value, the
#    more chances you have for that option to be chosen. For example, an option like this:
#
#    map_shuffle:
#      on: 5
#      off: 15
#
#    Means you have 5 chances for map shuffle to occur, and 15 chances for map shuffle to be turned
#    off.
#
# Q. I've never seen a file like this before. What characters am I allowed to use?
# A. This is a .yaml file. You are allowed to use most characters.
#    To test if your yaml is valid or not, you can use this website:
#        http://www.yamllint.com/
#    You can also verify that your Archipelago options are valid at this site:
#        https://archipelago.gg/check

# Your name in-game, limited to 16 characters.
#     {player} will be replaced with the player's slot number.
#     {PLAYER} will be replaced with the player's slot number, if that slot number is greater than 1.
#     {number} will be replaced with the counter value of the name.
#     {NUMBER} will be replaced with the counter value of the name, if the counter value is greater than 1.
name: Player{number}

# Used to describe your yaml. Useful if you have multiple files.
description: Default Crypt of the NecroDancer Template

game: Crypt of the NecroDancer
requires:
  version: 0.6.7 # Version of Archipelago required for this yaml to work as expected.
  game:
    Crypt of the NecroDancer: 0.8.0 # Version of the world required for this yaml to work as expected.

Crypt of the NecroDancer:
  ################
  # Game Options #
  ################
  progression_balancing:
    # A system that can move progression earlier, to try and prevent the player from getting stuck and bored early.
    # 
    # A lower setting means more getting stuck. A higher setting means less getting stuck.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 99
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-99: 0 # random value between 0 and 99
    disabled: 0 # equivalent to 0
    normal: 50 # equivalent to 50
    extreme: 0 # equivalent to 99

  accessibility:
    # Set rules for reachability of your items/locations.
    # 
    # **Full:** ensure everything can be reached and acquired.
    # 
    # **Minimal:** ensure what is needed to reach your goal can be acquired.
    full: 50
    minimal: 0

  death_link:
    # When you die, everyone who enabled death link dies. Of course, the reverse is true too.
    'false': 50
    'true': 0

  goal:
    # What goal to set for the Crypt of the NecroDancer multiworld. Default is Story.
    # All_Zones: Clear All Zones mode with X amount of characters, where X is the value put for "All Zones Goal Clear".
    # Zones: Clear X amount of zones, where X is the value put for "Zones Goal Clear". Will disable "All Zones" checks.
    # Golden_Lute_Shards: Collect X Golden Lute Shard items, where X is the value put for "Golden Lute Shards Goal Clear". The shards are shuffled into the multiworld.
    # Story: Beat the game's story bosses: Dead Ringer, NecroDancer I, NecroDancer II, Golden Lute (Frankensteinway, The Conductor with Amplified enabled).
    #        Requires those characters and access to the zones their bosses live in.
    all_zones: 0
    zones: 0
    golden_lute_shards: 0
    story: 50

  all_zones_goal_clear:
    # Determines how many character completions are required for the All Zones goal. Default is 6.
    # Note: If this value exceeds the number of characters in the pool, then this value will equal that number.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 20
    6: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-20: 0 # random value between 1 and 20

  zones_goal_clear:
    # Determines how many separate zone completions are required for the Zones goal. Default is 24.
    # Note: If this value exceeds the number of zones in the pool, then this value will equal that number.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    24: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  golden_lute_shards_goal_clear:
    # Determines how many Golden Lute Shards must be collected for the Golden Lute Shards goal. Default is 10.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    10: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  lute_shards_in_pool:
    # Determines how many Golden Lute Shards are shuffled into the multiworld for the Golden Lute Shards goal.
    # Raised to match the goal amount if set lower than the required amount. Default is 13.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    13: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  victory_trigger:
    # Determines what must be completed to trigger victory. All zones must be unlocked to access either mode.
    # Disabled: Victory is sent automatically as soon as the goal is met, with no additional catalyst step.
    # Ensemble: Complete an Ensemble Mode Run with your unlocked characters.
    # Boss_Rush: Defeat all zone bosses in sequence (4, or 5 with Amplified enabled). The first boss room starts with a Red, Black, and Purple chest.
    # Expensive_Purchase: Buy an expensive item in the AP lobby for a configurable diamond cost, once the goal has been met.
    # Default is Ensemble.
    disabled: 0
    ensemble: 50
    boss_rush: 0
    expensive_purchase: 0

  expensive_purchase_price:
    # Diamond cost of the Expensive Purchase when Victory Trigger is set to Expensive Purchase. Default is 150.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 1000
    150: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-1000: 0 # random value between 1 and 1000

  zone_progress_checks:
    # How many checks each character earns per zone, counting the zone clear itself. Default is 2.
    # Checks are spaced evenly through the zone, and clearing the zone is always one of them:
    # 1: The zone clear only.
    # 2: Floor 2 and the zone clear.
    # 3: Floors 1, 3, and the zone clear.
    # 4: Each floor and the zone clear.
    # Note: Story boss checks (Dead Ringer, NecroDancer (I, II), Golden Lute, Frankensteinway, and The Conductor) are separate and exist at every setting.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 4
    2: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-4: 0 # random value between 1 and 4

  all_zones_speedrun_times:
    # Time limits in minutes for each character's All Zones check. 0 leaves a character untimed. Default is 0 for everyone.
    # A character's "<name> - All Zones" location is only sent if their AP Zones Mode run finishes within their limit.
    # Warning: This does not change logic. Generation still treats the location as reachable, the mod just will not send the location
    # unless you reach the set speedrun time.
    # Note: Values of 1 or 2 are raised to 3 during generation. A 3 minute run is pretty much a longshot but not practically unbeatable.
    Aria: 0
    Bard: 0
    Bolt: 0
    Cadence: 0
    Chaunter: 0
    Coda: 0
    Diamond: 0
    Dorian: 0
    Dove: 0
    Eli: 0
    Hatsune Miku: 0
    Klarinetta: 0
    Mary: 0
    Melody: 0
    Monk: 0
    Nocturna: 0
    Reaper: 0
    Shovel Knight: 0
    Suzu: 0
    Tempo: 0

  dlc:
    # Which DLCs to include content from in progression and checks.
    # Options include: Amplified, Synchrony, Miku, Shovel Knight
    # Note: Excluding the Synchrony DLC does not mean that you can play this APWorld without the Synchrony DLC. This is only to exclude content from the Synchrony DLC in the multiworld.
    # Note: Excluding the Amplified DLC will remove Zone 5 from progression altogether.
    ['Synchrony']

  death_link_type:
    # How receiving a DeathLink should impact gameplay. Default is Tempo.
    # Absolute: When receiving a DeathLink mid-run, you immediately die.
    # Tempo: When receiving a DeathLink mid-run, a death timer will tick down the next 24 turns. If you can complete the level, the timer is removed and you avoid death. Having an active death timer will always treat a new DeathLink as an immediate death.
    # Marv: Amplified Required: When receiving a DeathLink, receive a Marv follower. Multiple DeathLinks will add more Marvs. If any Marv is killed, you lose 20% of your max health every turn. If you can complete the level, all Marvs are removed and you avoid death.
    # Note: The Marv setting requires Amplified, and will be swapped out for Tempo if chosen without Amplified. Any effects that trigger on-death will occur, including health potions.
    absolute: 0
    tempo: 50
    marv: 0

  death_link_trigger:
    # With more than one player in a run, what counts as a death worth sending a DeathLink for. Default is Game Over.
    # Game_Over: A DeathLink is sent only when a death leaves no players standing, ending the run.
    # Each_Death: A DeathLink is sent every time any player dies, even if the run continues.
    # Note: This applies to both online multiplayer and local co-op. In singleplayer both settings behave identically, since any death ends the run.
    game_over: 50
    each_death: 0

  starting_inventory:
    # Percentage of starting items granted at world start.
    # If Character Unlocks is not Item_Only, required items for the starting character are always included.
    # Default is 25.
    # 
    # Presets:
    # Vanilla (100): All starting items, like a fresh save.
    # Half (50): Half of all starting items.
    # Reduced (25): A quarter of all starting items.
    # Minimum (0): Only mandatory items (Dagger, Shovel).
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100
    vanilla: 0 # equivalent to 100
    half: 0 # equivalent to 50
    reduced: 50 # equivalent to 25
    minimum: 0 # equivalent to 0

  starting_character:
    # Which character to start the game with. Default is Cadence.
    # Note: If a selected starting character is not in the item pool, this option will change to a random character available in the item pool.
    #     The following characters will be removed from the item pool unless their respective DLCs are enabled
    #     - Amplified: Nocturna, Diamond, Mary, Tempo
    #     - Synchrony: Klarinetta, Chaunter, Suzu
    #     - Miku: Hatsune Miku
    #     - Shovel Knight: Shovel Knight
    cadence: 50
    melody: 0
    aria: 0
    dorian: 0
    eli: 0
    monk: 0
    dove: 0
    coda: 0
    bolt: 0
    bard: 0
    nocturna: 0
    diamond: 0
    mary: 0
    tempo: 0
    reaper: 0
    klarinetta: 0
    chaunter: 0
    suzu: 0
    hatsune_miku: 0
    shovel_knight: 0

  character_blacklist:
    # Which characters to exclude from checks and progression. Note that this will disable the character from the run entirely if included.
    # Options include: Cadence, Melody, Aria, Nocturna, Eli, Bolt, Diamond, Chaunter, Dove, Bard, Mary, Suzu, Monk, Reaper, Tempo, Dorian, Coda, Klarinetta, Hatsune Miku, Shovel Knight
    # Note: If this list consists of all available characters, then Cadence will be removed from the blacklist to prevent progression issues.
    ['Coda', 'Bolt']

  character_unlocks:
    # How characters should be unlocked in the multiworld. All options will require a character item at the very minimum. Default is Item_Only.
    # Item_Only: Only the character item is required to unlock a character.
    # Required_Items_Soft: The character item (and unique items if enabled) unlocks in-game access to a character. Logic still requires the character's required items.
    # Required_Items_Hard: The character item and all required items (and unique item if Include Unique Equipment is enabled) must be received before in-game access to a character is granted.
    item_only: 50
    required_items_soft: 0
    required_items_hard: 0

  include_unique_items:
    # Whether to include character-specific equipment in the multiworld and in level generation. Default is false.
    # If set to true and Character Unlocks is set to either Required_Items_Soft or Required_Items_Hard, the characters who have unique items will require them.
    'false': 50
    'true': 0

  include_materials:
    # Whether to include weapon materials/shapes in the multiworld and in level generation. Default is false.
    # If set to true, weapons will only spawn with their base material until you unlock the associated material item.
    'false': 50
    'true': 0

  included_extra_modes:
    # Which game modes to include in checks. Note that this will disable the mode from the run entirely if excluded.
    # Options include: No Return (Amplified), Hard (Amplified), Phasing (Amplified), Randomizer (Amplified), Mystery (Amplified), No Beat, Double Tempo, and Low Percent.
    # Note: If you do not have the Amplified DLC enabled, the modes that require it will be disabled.
    []

  include_codex_checks:
    # Determines whether Tutorial levels (Bomb Lore, How to Get Away with Murder, etc.) will be included in progression. Default is true.
    'false': 0
    'true': 50

  include_shrine_checks:
    # Determines whether shrines are randomized. Each shrine becomes an item, and activating one for the first time is a check.
    # A shrine only generates in runs once its item has been received. Default is false.
    # Note: Shrines belonging to a DLC you have not enabled are excluded, as are the shrines Amplified replaces (No Return, Phasing, Pace) when Amplified is enabled.
    'false': 50
    'true': 0

  items_per_zone:
    # How many item checks a zone offers. Items can be acquired throughout a zone in a variety of ways, including chests, crates, barrels, and shops.
    # The higher the number, the more time spent grinding for various items in a run. Default is 8 per zone (32/40 additional locations).
    # Set this to 0 to turn item checks off entirely.
    # Note: This is a minimum. If your item pool ever exceeds your locations, rows are added automatically to fit, alternating with shop rows.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 25
    8: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-25: 0 # random value between 0 and 25

  item_generation_chance:
    # Percent chance that a generated item carries its zone's item check rather than what it was going to generate as. Once all
    # item checks in a zone have been acquired, item generation will return to normal for that zone. Default is 25.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 1
    # Maximum value is 100
    25: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-1-100: 0 # random value between 1 and 100

  include_flawless_chest_checks:
    # Determines whether the chests awarded for a flawless boss kill are checks, for 1 check per zone. Default is false.
    # Note: Three chests spawn on a flawless kill but opening one despawns the others, so only one check is available per zone.
    'false': 50
    'true': 0

  shop_rows:
    # How many rows of AP shop items to include. Each row is 9 locations (3 shopkeepers x 3 slots), and row N requires N-1 Shop Restock items. Default is auto.
    # Auto keeps the historical count, which scales with your enabled DLCs (69 base, 73 with Synchrony, 98 with Amplified, 102 with both).
    # Lowering this trims filler from the multiworld, but note that AP shop slots are priced in AP diamonds and are the main thing diamonds are spent on, so a smaller shop means a thinner economy.
    # Note: This is a minimum. If your item pool ever exceeds your locations, rows are added automatically to fit, alternating with zone item rows.
    # Set this to 0 to keep the shop out of that growth, leaving item checks to absorb it alone. If item checks are off or also 0, the shop grows anyway.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 25
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-25: 0 # random value between 0 and 25
    auto: 0 # equivalent to -1
    minimal: 0 # equivalent to 1
    small: 50 # equivalent to 4
    medium: 0 # equivalent to 8
    large: 0 # equivalent to 12

  lobby_npc_items:
    # Determines whether lobby NPC unlocks will be randomized. Saving the lobby NPC will return a randomized item instead of unlocking their room.
    'false': 50
    'true': 0

  zone_access_keys:
    # Controls whether zones are locked behind Zone Access Key items.
    # Disabled: Zones have no access requirements.
    # Separate: Each zone has its own distinct access key shuffled into the pool. The Starting Zone is freely accessible from the start; all other zones require their unique key.
    # Progressive: A single Progressive Zone Access item is used. Each copy found unlocks the next zone in sequence (Zone 1 requires 0, Zone 2 requires 1, etc.).
    # Default is Disabled.
    disabled: 0
    separate: 0
    progressive: 50

  starting_zone:
    # When Zone Access Keys are Separate or Progressive, sets the starting accessible zone.
    # Separate: The starting zone requires no key; all other zones need their unique key.
    # Progressive: Starting Zone minus one Progressive Zone Access items are precollected, granting immediate access to all zones up to and including the starting zone.
    # Zone 5 is only valid with Amplified enabled, otherwise pre-generation validation forces Zone 4.
    # Has no effect when Zone Access Keys is Disabled. Default is Zone 1.
    zone_1: 50
    zone_2: 0
    zone_3: 0
    zone_4: 0
    zone_5: 0

  lock_character_room:
    # When enabled, a Character Room Key item must be received before you can switch away from your starting character.
    # This creates an early-game chokepoint, restricting all runs to your starting character until the key is found.
    # Default is false.
    'false': 50
    'true': 0

  buff_items:
    # When enabled, buff shrines can only be activated after receiving both the character item and their corresponding buff item.
    # Otherwise, only the character is required to toggle a character's buff.
    # Default is false.
    'false': 50
    'true': 0

  trap_percentage:
    # Replaces filler items with traps, at the specified rate.
    # Default is 20.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 100
    20: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-100: 0 # random value between 0 and 100

  trap_weights:
    # Specify the weights determining how many copies of each trap item will be in your itempool.
    # If you don't want a specific type of trap, you can set the weight for it to 0.
    # If you set all trap weights to 0, you will get no traps, bypassing the "Trap Percentage" option.
    # For a full description of each trap's effects and severity, see:
    # https://github.com/lastingParadox/Archipelago-CotND/blob/crypt-of-the-necrodancer/worlds/cotnd/docs/traps.md
    Animal Trap: 40
    Bald Trap: 50
    Bomb Trap: 20
    Camera Trap: 70
    Chaos Trap: 40
    Confusion Trap: 30
    Cursed Trap: 30
    Cutscene Trap: 70
    Dad Trap: 40
    Damage Trap: 70
    Dead Ringer Trap: 10
    Disarm Trap: 40
    Double Damage Trap: 20
    Earth Trap: 70
    Frank Trap: 10
    Freddy Trap: 60
    Freeze Trap: 50
    Gold Scatter Trap: 80
    Haunted Shopkeeper Trap: 70
    Hot Coals Trap: 50
    Ice Floor Trap: 30
    Isometric Trap: 40
    Leaping Trap: 40
    Market Crash Trap: 30
    Monkey Trap: 60
    No Return Trap: 40
    One Hit Trap: 10
    Shake Trap: 70
    Shrink Trap: 30
    Spotlight Trap: 40
    Summon Trap: 80
    Swap Trap: 40
    Tar Trap: 50
    Teleport Trap: 40
    Tempo Trap: 70
    Timer Trap: 30
    Transmute Trap: 40
    Trap Trap: 40
    Undo Trap: 40
    Wall Pig Trap: 30

  trap_link:
    # When you receive a trap, everyone who enabled trap link also receives a trap. Of course, the reverse is true too.
    # You will not receive traps that you have set to 0 in the trap_weights option. Default is false.
    'false': 50
    'true': 0

  traplink_excluded_traps:
    # Traps that can never be triggered by an incoming TrapLink trap, listed by their handler ID.
    # Only applies to TrapLink-only traps (traps without a pool item); pool traps are excluded by
    # setting their trap_weights entry to 0 instead. For the full list of handler IDs, see:
    # https://github.com/lastingParadox/Archipelago-CotND/blob/crypt-of-the-necrodancer/worlds/cotnd/docs/traps.md
    ['InstantDeathTrap', 'TutorialTrap']

  price_randomization:
    # How to randomize diamond prices in the Archipelago lobby.
    # Vanilla: CotND item prices remain at their vanilla price values. All AP and non-CotND item prices will be randomized according to their item classification (Filler, Useful, Progression).
    # Vanilla_Rand: CotND item prices remain at their vanilla price values. All AP and non-CotND item prices will be randomized completely.
    # Item_Class: All item prices will be randomized according to their item classification (Filler, Useful, Progression).
    # Complete: All item prices will be randomized completely.
    # Default is Vanilla.
    vanilla: 50
    vanilla_rand: 0
    item_class: 0
    complete: 0

  price_ranges:
    # Diamond price ranges for items in the Archipelago lobby, in diamonds.
    # random_min / random_max apply when Price Randomization is Vanilla_Rand or Complete.
    # The filler, useful and progression pairs apply when it is Vanilla or Item_Class.
    # A minimum above its matching maximum is swapped during generation.
    filler_max: 4
    filler_min: 1
    progression_max: 10
    progression_min: 4
    random_max: 10
    random_min: 1
    useful_max: 8
    useful_min: 2

  diamond_exchange_rate:
    # How much gold converts into one AP diamond when you win a run.
    # A run's leftover gold is otherwise discarded, so this cashes it out. Only winning runs convert; dying forfeits the gold.
    # In co-op and online multiplayer every player's gold is pooled before converting.
    # Default is 100.
    # 
    # Presets:
    # Disabled (0): Leftover gold is discarded.
    # Shrine_Rate (50): Matches the Shrine of Exchange 50:1.
    # Default (100): Twice the Shrine of Exchange rate. 100:1.
    # Stingy (150): Thrice the Shrine of Exchange rate. 150:1.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 1000
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-1000: 0 # random value between 0 and 1000
    disabled: 0 # equivalent to 0
    shrine_rate: 0 # equivalent to 50
    default: 50 # equivalent to 100
    stingy: 0 # equivalent to 150

  permanent_health_upgrades:
    # The number of permanent health upgrades to include in the multiworld. Setting this higher will make for an easier time in
    # later runs, while making it lower will keep things challenging. Default is 3.
    #
    # You can define additional values between the minimum and maximum values.
    # Minimum value is 0
    # Maximum value is 8
    3: 50
    random: 0
    random-low: 0 # random value weighted towards lower values
    random-high: 0 # random value weighted towards higher values
    random-range-0-8: 0 # random value between 0 and 8

  ###########################
  # Item & Location Options #
  ###########################
  local_items:
    # Forces these items to be in their native world.
    []

  non_local_items:
    # Forces these items to be outside their native world.
    []

  start_inventory:
    # Start with the specified amount of these items. Example: "Bomb: 1"
    {}

  start_hints:
    # Start with these item's locations prefilled into the ``!hint`` command.
    []

  start_location_hints:
    # Start with these locations and their item prefilled into the ``!hint`` command.
    []

  exclude_locations:
    # Prevent these locations from having an important item.
    []

  priority_locations:
    # Prevent these locations from having an unimportant item.
    []

  item_links:
    # Share part of your item pool with other players.
    []

  plando_items:
    # Generic items plando.
    []
